package Year22_Month06.day06;

public class 二叉树的最小深度_DFS {
    public int minDepth(TreeNode root) {
        int deepth = DFS(root);
        return deepth;
    }

    public int DFS(TreeNode root){
        if(root == null) return 0;
        //这里首先要排除就是左右子树有一个为空的情况，因为这个时候它不算是叶子结点
        //如果右子树为空就从左子树往下走
        if(root.right == null && root.left != null){
            return DFS(root.left) + 1;
        }
        //如果左子树为空就从右子树往下走
        if(root.left == null && root.right != null){
            return DFS(root.right) + 1;
        }
        //如果左右子树都不为空那么就找短的哪一个
        return Math.min(DFS(root.left),DFS(root.right)) + 1;
    }
}
